/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sirius.usynapse.data;

import java.util.List;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

/**
 *
 * @author jildefonso
 */
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Unidad {

    @PrimaryKey
    @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
    private Long id;
    @Persistent
    private TipoUnidad tipoUnidad = null;
    @Persistent
    private String nombre = null;
    @Persistent
    private boolean atravieza_stargate = false;
    @Persistent
    private boolean inutilizado = false;
    @Persistent
    private int velocidad = 0;
    @Persistent
    private int velocidad_hyperespacio = 0;
    @Persistent
    private int punteria = 0;
    @Persistent
    private int evacion = 0;
    @Persistent
    private int resistencia = 0;
    @Persistent
    private int escudo = 0;
    @Persistent
    private int alcance = 0;
    @Persistent
    private int batallaTierra = 0;
    @Persistent
    private int batallaEspacio = 0;
    @Persistent
    private List<CantidadRecurso> costo = null;
    @Persistent
    private int tiempoCreacion = 0;
    @Persistent
    private boolean invisible = false;
    @Persistent
    private List<CantidadRecurso> recoleccion = null;
    @Persistent
    private int nivel = 0;
    @Persistent
    private int puntos = 0;
    @Persistent
    private List<Pasajero> pasajeros = null;
    @Persistent
    private Arma arma = null;

    @Override
    public boolean equals(Object obj) {
        return obj instanceof Unidad ? ((Unidad) obj).getId() == getId() : false;
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the tipoUnidad
     */
    public TipoUnidad getTipoUnidad() {
        return tipoUnidad;
    }

    /**
     * @param tipoUnidad the tipoUnidad to set
     */
    public void setTipoUnidad(TipoUnidad tipoUnidad) {
        this.tipoUnidad = tipoUnidad;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the atravieza_stargate
     */
    public boolean isAtravieza_stargate() {
        return atravieza_stargate;
    }

    /**
     * @param atravieza_stargate the atravieza_stargate to set
     */
    public void setAtravieza_stargate(boolean atravieza_stargate) {
        this.atravieza_stargate = atravieza_stargate;
    }

    /**
     * @return the inutilizado
     */
    public boolean isInutilizado() {
        return inutilizado;
    }

    /**
     * @param inutilizado the inutilizado to set
     */
    public void setInutilizado(boolean inutilizado) {
        this.inutilizado = inutilizado;
    }

    /**
     * @return the velocidad
     */
    public int getVelocidad() {
        return velocidad;
    }

    /**
     * @param velocidad the velocidad to set
     */
    public void setVelocidad(int velocidad) {
        this.velocidad = velocidad;
    }

    /**
     * @return the velocidad_hyperespacio
     */
    public int getVelocidad_hyperespacio() {
        return velocidad_hyperespacio;
    }

    /**
     * @param velocidad_hyperespacio the velocidad_hyperespacio to set
     */
    public void setVelocidad_hyperespacio(int velocidad_hyperespacio) {
        this.velocidad_hyperespacio = velocidad_hyperespacio;
    }

    /**
     * @return the punteria
     */
    public int getPunteria() {
        return punteria;
    }

    /**
     * @param punteria the punteria to set
     */
    public void setPunteria(int punteria) {
        this.punteria = punteria;
    }

    /**
     * @return the evacion
     */
    public int getEvacion() {
        return evacion;
    }

    /**
     * @param evacion the evacion to set
     */
    public void setEvacion(int evacion) {
        this.evacion = evacion;
    }

    /**
     * @return the resistencia
     */
    public int getResistencia() {
        return resistencia;
    }

    /**
     * @param resistencia the resistencia to set
     */
    public void setResistencia(int resistencia) {
        this.resistencia = resistencia;
    }

    /**
     * @return the escudo
     */
    public int getEscudo() {
        return escudo;
    }

    /**
     * @param escudo the escudo to set
     */
    public void setEscudo(int escudo) {
        this.escudo = escudo;
    }

    /**
     * @return the alcance
     */
    public int getAlcance() {
        return alcance;
    }

    /**
     * @param alcance the alcance to set
     */
    public void setAlcance(int alcance) {
        this.alcance = alcance;
    }

    /**
     * @return the batallaTierra
     */
    public int getBatallaTierra() {
        return batallaTierra;
    }

    /**
     * @param batallaTierra the batallaTierra to set
     */
    public void setBatallaTierra(int batallaTierra) {
        this.batallaTierra = batallaTierra;
    }

    /**
     * @return the batallaEspacio
     */
    public int getBatallaEspacio() {
        return batallaEspacio;
    }

    /**
     * @param batallaEspacio the batallaEspacio to set
     */
    public void setBatallaEspacio(int batallaEspacio) {
        this.batallaEspacio = batallaEspacio;
    }

    /**
     * @return the costo
     */
    public List<CantidadRecurso> getCosto() {
        return costo;
    }

    /**
     * @param costo the costo to set
     */
    public void setCosto(List<CantidadRecurso> costo) {
        this.costo = costo;
    }

    /**
     * @return the tiempoCreacion
     */
    public int getTiempoCreacion() {
        return tiempoCreacion;
    }

    /**
     * @param tiempoCreacion the tiempoCreacion to set
     */
    public void setTiempoCreacion(int tiempoCreacion) {
        this.tiempoCreacion = tiempoCreacion;
    }

    /**
     * @return the invisible
     */
    public boolean isInvisible() {
        return invisible;
    }

    /**
     * @param invisible the invisible to set
     */
    public void setInvisible(boolean invisible) {
        this.invisible = invisible;
    }

    /**
     * @return the recoleccion
     */
    public List<CantidadRecurso> getRecoleccion() {
        return recoleccion;
    }

    /**
     * @param recoleccion the recoleccion to set
     */
    public void setRecoleccion(List<CantidadRecurso> recoleccion) {
        this.recoleccion = recoleccion;
    }

    /**
     * @return the nivel
     */
    public int getNivel() {
        return nivel;
    }

    /**
     * @param nivel the nivel to set
     */
    public void setNivel(int nivel) {
        this.nivel = nivel;
    }

    /**
     * @return the puntos
     */
    public int getPuntos() {
        return puntos;
    }

    /**
     * @param puntos the puntos to set
     */
    public void setPuntos(int puntos) {
        this.puntos = puntos;
    }

    /**
     * @return the pasajeros
     */
    public List<Pasajero> getPasajeros() {
        return pasajeros;
    }

    /**
     * @param pasajeros the pasajeros to set
     */
    public void setPasajeros(List<Pasajero> pasajeros) {
        this.pasajeros = pasajeros;
    }

    /**
     * @return the arma
     */
    public Arma getArma() {
        return arma;
    }

    /**
     * @param arma the arma to set
     */
    public void setArma(Arma arma) {
        this.arma = arma;
    }
}
